#If _MyType <> "Empty" Then Namespace My ''' ''' Module used to define the properties that are available in the My Namespace for WPF ''' ''' _ Module MyWpfExtension Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer) Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User) Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows) Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log) ''' ''' Returns the application object for the running application ''' _ Friend ReadOnly Property Application() As Application Get Return CType(Global.System.Windows.Application.Current, Application) End Get End Property ''' ''' Returns information about the host computer. ''' _ Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer Get Return s_Computer.GetInstance() End Get End Property ''' ''' Returns information for the current user. If you wish to run the application with the current ''' Windows user credentials, call My.User.InitializeWithWindowsUser(). ''' _ Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User Get Return s_User.GetInstance() End Get End Property ''' ''' Returns the application log. The listeners can be configured by the application's configuration file. ''' _ Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log Get Return s_Log.GetInstance() End Get End Property ''' ''' Returns the collection of Windows defined in the project. ''' _ Friend ReadOnly Property Windows() As MyWindows _ Get Return s_Windows.GetInstance() End Get End Property _ _ Friend NotInheritable Class MyWindows _ Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T If Instance Is Nothing Then If s_WindowBeingCreated IsNot Nothing Then If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.") End If Else s_WindowBeingCreated = New Global.System.Collections.Hashtable() End If s_WindowBeingCreated.Add(GetType(T), Nothing) Return New T() s_WindowBeingCreated.Remove(GetType(T)) Else Return Instance End If End Function _ _ Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T) instance = Nothing End Sub _ _ Public Sub New() MyBase.New() End Sub Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable Public Overrides Function Equals(ByVal o As Object) As Boolean Return MyBase.Equals(o) End Function Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode End Function _ _ Friend Overloads Function [GetType]() As Global.System.Type Return GetType(MyWindows) End Function Public Overrides Function ToString() As String Return MyBase.ToString End Function End Class End Module End Namespace Partial Class Application Inherits Global.System.Windows.Application _ _ Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo _ Get Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly()) End Get End Property End Class #End If